<?php

// NOTE: Namespaces in use here!!!

namespace Core\Presentation\HTML\Widgets;

interface Widget {

    public function getHTML ();

    public function parent ();

}

interface HoldsChildren {

    public function addChild ( $objNode );

    public function children ( $strExpression );

    public function hasChildren ();

    public function removeChild ();

}


abstract class GenericWidget implements Widget {

    public function getHTML () {

    }

    public function parent () {

    }

}


abstract class GenericWidgetC implements HoldsChildren, Widget {

    public function addChild () {

    }

    public function children () {

    }

    public function getHTML () {

    }

    public function hasChildren () {

    }

    public function parent () {

    }

    public function removeChild () {

    }

}

?>
